package com.dc.java8._8_annotation;

import org.junit.Test;

import javax.xml.ws.BindingType;
import java.lang.annotation.Annotation;
import java.util.stream.Stream;

/**
 * Description: 自定义注解测试类
 * @author: gdc
 * @date: 2021/4/10
 * @version 1.0
 */
@MyAnnotation("hello")
@MyAnnotation("world")
@BindingType
public class AnnotationTest {
	@Test
	public void test1() {
		/**
		 * getAnnotations() 返回当前这个元素上的所有注解
		 */
		Annotation[] annos = AnnotationTest.class.getAnnotations();
		Stream.of(annos).forEach(System.out::println);
		
		System.out.println("--------------------------------");
		
		/**
		 *  getAnnotation(Class<T> annotationClass)返回指定元素的注解
		 */
		MyAnnotations ans = AnnotationTest.class.getAnnotation(MyAnnotations.class);
		
		/**
		 * value() 该方法为重复数组注解中的方法，通过该方法可以获取注解数组
		 */
		MyAnnotation[] myAnnos = ans.value();
		
		/**
		 *  遍历得到数组注解的值
		 */
		Stream.of(myAnnos)
			.forEach(y -> System.out.println(y.value()));
	}
}
